/**
 * 
 * @param {Object} 
 * service = {
 *   name: 'guanggu',
 *   layerId: [1]
 * } 
 * @attr = {
 *  key: 'name",
 *  value: 'abc'
 * }
 * @page = {
 * pageIndex: 0,  当前页，从0开始
 * recordNumber: 5 每页显示几条
 * }
 */
export function query({ service, callback, geo,position, attr, page,where }) {
    //初始化查询结构对象，设置查询结构包含几何信息
    var queryStruct = new Zondy.Service.QueryFeatureStruct();
    //是否包含几何图形信息
    queryStruct.IncludeGeometry = true;
    //是否包含属性信息
    queryStruct.IncludeAttribute = true;
    //是否包含图形显示参数
    queryStruct.IncludeWebGraphic = false;
    //指定查询规则
    var rule = new Zondy.Service.QueryFeatureRule({
        //是否将要素的可见性计算在内
        EnableDisplayCondition: false,
        //是否完全包含
        MustInside: false,
        //是否仅比较要素的外包矩形
        CompareRectOnly: false,
        //是否相交
        Intersect: true
    });
    //实例化查询参数对象
    var queryParam = new Zondy.Service.QueryParameter({
        resultFormat: "json",
        struct: queryStruct,
        rule: rule
    });
    // 图形查询（拉框，点）
    if (geo) {
        //创建一个用于查询的区
        var geomObj = new Zondy.Object.Polygon();
        geomObj.setByOL(geo);
        queryParam.geometry = geomObj
    }
    if(position){
        //创建一个用于查询的点形状
        let pointObj = new Zondy.Object.Point2D(position[0], position[1]);
        //设置查询点的搜索半径
        pointObj.nearDis = 0.002;
        queryParam.geometry = pointObj
    }
    if (attr) {
        queryParam.where = `${attr.key} like '%${attr.value}%'`
    }
    if (where) {
        queryParam.where = where
    }
    //设置查询分页号
    queryParam.pageIndex = 0;
    //设置查询要素数目
    queryParam.recordNumber = 200;
    if (page) {
        queryParam.pageIndex = page.pageIndex
        queryParam.recordNumber = page.recordNumber
    }
    //实例化地图文档查询服务对象
    var queryService = new Zondy.Service.QueryDocFeature(queryParam, service.name, service.layerId, {
        ip: "localhost",
        port: 6163
    });
    //执行查询操作，querySuccess为查询回调函数
    queryService.query(callback);
}

export function queryVectorLayer({ url, success, attr }) {

    // 初始化查询结构对象，设置查询结构包含几何信息

    let queryStruct = new Zondy.Service.QueryFeatureStruct();

    // 是否包含几何图形信息

    queryStruct.IncludeGeometry = false;

    //是否包含属性信息

    queryStruct.IncludeAttribute = true;

    // 是否包含图形显示参数

    queryStruct.IncludewebGraphic = false;

    // 实例化查询参数对象

    var queryParam = new Zondy.Service.QueryByLayerParameter(url,
        {

            resultFormat: "json",

            struct: queryStruct

        });

    queryParam.recordNumber = 1000
    if (attr) {
        queryParam.where = `${attr.key} like '%${attr.value}%'`
    }
    // 实例化地图文档查询服务对象

    var queryService = new Zondy.Service.QueryLayerFeature(queryParam, {
        ip: "localhost",
        port: "6163"//访问IGServer的端口号, .net版为6163，Java版为8089
    });

    // 执行查询操作，querySuccess为查询回调函数
    queryService.query(success);
}